<?php
/**
 * Crud Comentario
 * 
 * @author André Coura <andreccls@gmail.com>
 * @since 07/06/2012
 */
//necessário para todas as páginas do admin (facilitador)
include("defaultAdmin.php");
require_once(PASTA_DAO."Comentario.class.php");
//verificação se o usuário esta logado, cado contrário, este será redirecionado para o login.
if($objUsrSession->getIdUsuario() == 0){
	HttpUtil::vaiPara("login.php?msg=1");
}


/**
 * VERIFICAÇÃO DA TELA QUE SERÁ EXIBIDA
 */
 if(!isset($_GET["id"]))
	$id = "";
else
	$id = (int)$_GET["id"];
if(!is_numeric($id) || $id == 0 || $id=="") 
	$id = null;
 if(!isset($_GET["idPost"]))
	$idPost = "";
else
	$idPost = (int)$_GET["idPost"];
if(!is_numeric($idPost) || $idPost == 0 || $idPost=="") 
	$idPost = null;
$objCtrlSmarty->assign("id_comentario",$id);
$objComentario = new Comentario();

if(!isset($_GET["a"]))
	$_GET["a"] = "";
switch ($_GET["a"]){
	case 'form':
		//seto a mensagem como ja lida, pois ja foi aperta
		//$objComentario->setStatus($id,"X");
		if(isset($id)){
			//busco os dados do banco
			$arrCampos = $objComentario->buscaCampos($id);
			//seto no formulário os valores dos campos automaticamente
			foreach ($arrCampos as $nomeCampo => $fieldData) {
				$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
			}
		}
		$arrResp = Utf8Parsers::arrayUtf8Encode($objComentario->getComentario($id));
		$arrResp["desc_comentario"] = nl2br($arrResp["desc_comentario"]);
		
		if($arrResp["status_comentario"]=="A")
			$objCtrlSmarty->assign("ATIVO","checked=\"checked\"");
		else
			$objCtrlSmarty->assign("INATIVO","checked=\"checked\"");
		
		
		$objCtrlSmarty->assign("arrComent",$arrResp);
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formComentarios.tpl"));
		break;
	case 'post':
		try{
			//validação preguiça de fazer em javascript
			$arrErros = array();
			
			//se não teve erros continua com o comentario
			if(count($arrErros) == 0){
				$id = (int)$_POST["id_comentario"];
				if(!is_numeric($id) || $id == 0 || $id=="") 
					$id = null; //verificação se tem algo no id para não dar pau
				$arrCampos = $objComentario->buscaCampos($id);	
				foreach ($arrCampos as $key => $value) {
					if(!isset($_POST[$key])){
						$_POST[$key]= utf8_encode($value);
					}
				}
				if(!isset($_POST["status_comentario"]))	
					$_POST["status_comentario"] = "N";
				$objComentario->alterar($id,$_POST,null);
				HttpUtil::vaiPara("CrudComentarios.php?msg=3&idPost=".$_POST["id_post"]);
			}else{
				//loop para preencher, em caso de erro, o formulário
				foreach ($_POST as $nomeCampo => $fieldData) {
					$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
				}
				//loop para setar os lugares com os erros
				foreach ($arrErros as $nomeErro => $conteudo) {
					$objCtrlSmarty->assign($nomeErro,$conteudo);
				}
				//exibo o form aqui
				$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formComentarios.tpl"));
			}
		}catch(CustonException $e){
			HttpUtil::vaiPara("CrudComentarios.php?msg=5");
		}
		break;
	case 'excluir':
		//exclusão do arquivo físico, se existir
		$objComentario->deletar($id);
		HttpUtil::vaiPara("CrudComentarios.php?msg=4");
		break;
	case 'lista':
	default:
		$arrDados = Utf8Parsers::matrizUtf8Encode($objComentario->getComentariosByPost($idPost));
		$objCtrlSmarty->assign("arrComentarios", $arrDados);
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/listaComentarios.tpl"));
		break;
}


//definição da estrutura do admin <cabecalho, corpo e rodape>
$objCtrlSmarty->assign("ESTRUTURA",$objCtrlSmarty->fetch(TPLS_FILE."admin/adminEstrutura.tpl"));

//ultima coisa que deve ter no arquivo, serve para imprimir a tela
$objCtrlSmarty->display(TPLS_FILE."index.tpl");
?>